package com.nablasystems.suag.domain;

import java.text.DateFormat;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;

import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.Column;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;

@Entity
@Table(name="examen_final")
public class ExamenFinal {
	@Id
	@Column(name="idExamenFinal")
	@GeneratedValue
	private Integer idExamenFinal;
	
	@Column(name="fecha")
	private Date fecha;
	
	@Column(name="hora")
	private String hora;
	
	@ManyToOne
    @JoinColumn(name = "idMateria")
	private Materia materia;
	
	@ManyToOne
    @JoinColumn(name = "idDocente")
	private Docente docente;

	@OneToMany(fetch = FetchType.LAZY, mappedBy="examenFinal",cascade= CascadeType.ALL)
	private Set<InscripcionExamenFinal> inscriptos = new HashSet<InscripcionExamenFinal>();
	
	public int getIdExamenFinal() {
		return idExamenFinal;
	}

	public void setIdExamenFinal(int idExamenFinal) {
		this.idExamenFinal = idExamenFinal;
	}

	public String getFecha() {
		String fechaAux = ""; 
		DateFormat df2 = DateFormat.getDateInstance(DateFormat.MEDIUM);
		fechaAux = df2.format(fecha);
		return fechaAux;
	}
	
	public Date getFechaDate() {
		return fecha;
	}

	public void setFecha(Date fecha) {
		this.fecha = fecha;
	}

	public String getHora() {
		return hora;
	}

	public void setHora(String hora) {
		this.hora = hora;
	}

	public Materia getMateria() {
		return materia;
	}

	public void setMateria(Materia materia) {
		this.materia = materia;
	}

	public Docente getDocente() {
		return docente;
	}

	public void setDocente(Docente docente) {
		this.docente = docente;
	}

	public Set<InscripcionExamenFinal> getInscriptos() {
		return inscriptos;
	}

	public void setInscriptos(Set<InscripcionExamenFinal> inscriptos) {
		this.inscriptos = inscriptos;
	}

	@Override
	public String toString() {
		return "ExamenFinal [idExamenFinal=" + idExamenFinal + ", fecha="
				+ fecha + ", hora=" + hora + ", materia=" + materia
				+ ", docente=" + docente + "]";
	}
}
